package com.jinhua.config;

/**
 * Copyright
 *
 * @Author WuHuang
 * @Date 2022/8/25
 */
public enum BaseErrorCode implements ErrorCode{
    Success("成功"),
    FAIL("失败"),
    AUTH_FAIL("鉴权失败"),
    STORE_ID_INVALID("未授权门店访问"),
    /**
     * 山姆使用
     */
    REMOTE_CALL_TIME_OUT("服务器开小差了,请稍后重试"),
    GATE_CALL_TIME_OUT("服务器开小差,请稍后重试"),
    /**
     * 不明系统异常,比如未捕获的空指针
     */
    SYSTEM_ERROR("系统异常,请稍后重试"),
    /**
     * rpc服务在注册中心找不到
     */
    REMOTE_CALL_LOST("服务开小差了,请稍后重试"),
    /**
     * rpc服务调用超时
     */
    REMOTE_CALL_FAIL_TIME_OUT("服务调用开小差了,请稍后重试"),
    /**
     * 未指明的异常
     */
    UNSPECIFIED("网络异常，请稍后再试"),
    /**
     * sql异常
     */
    TSR_SQL_ERROR("数据层执行异常"),
    /**
     * sentinel限流
     */
    LIMITED("服务器正忙,请稍后再试"),
    /**
     * sentinel系统自适应限流
     */
    ADAPTIVE_LIMITED("服务器正忙,请稍后再试"),
    /**
     * sentinel热点参数限流
     */
    PARAM_FLOW_LIMITED("服务器正忙,请稍后再试"),
    NO_SERVICE("网络异常, 服务器熔断"),
    REMOTE_CALL_FAIL("网络连接异常,请稍后重试"),
    UNAUTHORIZED_VISIT("未授权访问"),
    AUTH_URL_ERROR("鉴权URL异常"),
    ILLEGAL_AUTH_TOKEN("非法authToken"),

    // 通用异常
    REQUEST_ERROR("入参异常,请检查入参后再次调用");


    /**
     * 描述
     */
    private final String description;

    BaseErrorCode(final String description) {
        this.description = description;

    }


    /**
     * 获取错误码
     *
     * @return
     */
    @Override
    public String getCode() {
        return this.name();
    }

    @Override
    public String getDescription() {
        return description;
    }
}
